import random


def sep(label=''):
    '''
    Utility function, to separate command line output.
    :param label: Optional label.
    :return: None
    '''
    print('-' * 16, label, '-' * 16)


# 1．完成函数cal(a)
#  (1) 定义一个列表x,放入５个1-20之间的随机数。（６分）
x = random.choices(range(1, 20+ 1), k=5)
print(x)

#  (2)完成cal(a)，实现输出a中的最大值，最小值和平均值。（６分）


def cal(a):
    le = len(a)
    if 0 == le:
        print('没有数据！')
    b = sorted(a)
    xmax = b[le - 1]
    xmin = b[0]
    xavg = sum(b) / le
    print(f'最大值={xmax}, 最小值={xmin}, 平均值={xavg}')


# (3)调用cal(x)，查看结果。（3分）
cal(x)

# 2．写一个关键字可变长参数的函数。
# （1）函数以data命名（３分）
# （2）关键字变长参数；（３分）
# （3）实现人员的信息收集功能：（６分）
# ①查看关键字变长参数的数据类型，②遍历其中所有的值，并保存到一个列表info中；③将info作为返回值；


def data(**kwargs):
    # ①查看关键字变长参数的数据类型
    print('关键字变长参数的数据类型', type(kwargs))
    # ②遍历其中所有的值，并保存到一个列表info中；
    info = []
    for v in kwargs.values():
        info.append(v)
    # ③将info作为返回值；
    return info


# (4)调用函数，以变量赋值方式输入人员信息：name为“张有志”;age等于20;province为“河南”,城市city为“信阳”，薪资sal为2.4万。（3分）
print(data(name='张有志', age=20, province='河南', city='信阳', sal='2.4万'))
